package com.fowo.api.model.sales.outbound.product;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 销售出库单子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SalesOutboundProductImportPo {

  /** 所属销售出库单 */
  @ExcelProperty("所属销售出库单")
  @Size(max = 100, message = "所属销售出库单长度不能超过100")
  private String parentIdAmazonOrderId;

  @ExcelIgnore
  @Schema(title = "所属销售出库单")
  private String parentId;

  /** 出库单明细id */
  @ExcelProperty("出库单明细id")
  @IntegerString(
    message = "出库单明细id数值格式不正确",
    label = "出库单明细id",
    min = 0
  )
  private String wodId;

  /** 商品id */
  @ExcelProperty("商品id")
  @IntegerString(message = "商品id数值格式不正确", label = "商品id", min = 0)
  private String productId;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 数量 */
  @ExcelProperty("数量")
  @IntegerString(message = "数量数值格式不正确", label = "数量")
  private String count;

  /** 捆绑类型 */
  @ExcelProperty("捆绑类型")
  private String bundleType;

  /** 捆绑产品wod_id */
  @ExcelProperty("捆绑产品wod_id")
  @IntegerString(
    message = "捆绑产品wod_id数值格式不正确",
    label = "捆绑产品wod_id",
    min = 0
  )
  private String bundleWodId;

  /** 商品名 */
  @ExcelProperty("商品名")
  @Size(max = 500, message = "商品名长度不能超过500")
  private String productName;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String sellerSku;

  /** 商品备注 */
  @ExcelProperty("商品备注")
  @Size(max = 500, message = "商品备注长度不能超过500")
  private String customization;

  /** 中文申报名 */
  @ExcelProperty("中文申报名")
  @Size(max = 500, message = "中文申报名长度不能超过500")
  private String cnName;

  /** 英文申报名 */
  @ExcelProperty("英文申报名")
  @Size(max = 500, message = "英文申报名长度不能超过500")
  private String enName;

  /** 三方仓品名 */
  @ExcelProperty("三方仓品名")
  @Size(max = 500, message = "三方仓品名长度不能超过500")
  private String thirdProductName;

  /** 三方仓SKU */
  @ExcelProperty("三方仓SKU")
  @Size(max = 50, message = "三方仓SKU长度不能超过50")
  private String thirdProductCode;

  /** 商品单价 */
  @ExcelProperty("商品单价")
  @Size(max = 50, message = "商品单价长度不能超过50")
  private String unitPrice;

  /** 币种 */
  @ExcelProperty("币种")
  @Size(max = 50, message = "币种长度不能超过50")
  private String currencyCode;

  /** 分摊运费（总计） */
  @ExcelProperty("分摊运费（总计）")
  @Size(max = 50, message = "分摊运费（总计）长度不能超过50")
  private String apportionFreight;

  /** 分摊运费（单个） */
  @ExcelProperty("分摊运费（单个）")
  @Size(max = 50, message = "分摊运费（单个）长度不能超过50")
  private String apportionFreightSingle;

  /** 物流运费币种 */
  @ExcelProperty("物流运费币种")
  @Size(max = 50, message = "物流运费币种长度不能超过50")
  private String logisticsFreightCurrencyCode;

  /** 库存成本（总计） */
  @ExcelProperty("库存成本（总计）")
  @Size(max = 50, message = "库存成本（总计）长度不能超过50")
  private String stockCost;

  /** 当期出库成本金额 */
  @ExcelProperty("当期出库成本金额")
  @DecimalString(
    message = "当期出库成本金额小数格式不正确",
    label = "当期出库成本金额"
  )
  private String currentIssueCostAmount;
}
